package com.aivin.utils;

/**
 * Created by Administrator on 2016/10/18.
 */

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 数据验证工具类
 *
 * @author jie
 */
public class MyValidateUtil {
    /**
     * 是否为空
     *
     * @return
     */
    public static boolean isEmpty(Object o) {
        if (null == o)
            return true;

        if (o instanceof String)
            return "".equals(o) ? true : false;

        if (o instanceof List)
            return ((List) o).size() == 0 ? true : false;

        if (o instanceof Map)
            return ((Map) o).size() == 0 ? true : false;
        if (o instanceof String[])
            return ((String[]) o).length == 0 ? true : false;
        if (o instanceof int[])
            return ((int[]) o).length == 0 ? true : false;
        if (o instanceof Set)
            return ((Set) o).size() == 0 ? true : false;

        return false;
    }

    /**
     * 是否不为空
     *
     * @return
     */
    public static boolean isNotEmpty(Object o) {
        return !isEmpty(o);
    }


    /**
     * 若值为空 返回 -
     *
     * @param value
     * @return
     */
    public static String judgeValue(Object value) {
        if (value instanceof String) {
            if (MyValidateUtil.isNotEmpty(value)) {
                return (String) value;
            } else {
                return "-";
            }
        }

        if (value instanceof Integer) {
            if (MyValidateUtil.isNotEmpty(value)) {
                return String.valueOf(value);
            } else {
                return "0";
            }
        }

        return "-";
    }

    /**
     * 若值为空 返回 -
     *
     * @param value
     * @return
     */
    public static String judgeValue(String value) {
        return MyValidateUtil.isNotEmpty(value) ? value : "-";
    }



    /**
     * 若值为空，返回0
     *
     * @param value
     * @return
     */
    public static String judgeEmptyValueToZero(Object value) {
        if (value instanceof String) {
            if (MyValidateUtil.isNotEmpty(value)) {
                return (String) value;
            } else {
                return "0";
            }
        }

        if (value instanceof Integer) {
            if (MyValidateUtil.isNotEmpty(value)) {
                return (String) value;
            } else {
                return "0";
            }
        }
        return "0";
    }


    public static boolean isInt(String value) {
        try {
            new Integer(value);
            return true;
        } catch (Exception e) {
            return false;
        }
    }

//    public static String doubleToInt(String ){
//        return
//    }

}

